perm filename TALK[RDG,DBL]1 blob sn#530831 filedate 1980-08-22 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		Words for Talk to be given 20-Aug-80, for AAAI#1
C00010 00003				      Slides to use:
C00013 00004					 OutTakes
C00015 ENDMK
C⊗;
	Words for Talk to be given 20-Aug-80, for AAAI#1
	(at Stanford University, Memorial Auditorium)

I. Motivation
There are today a plethora of representation languages, each designed to serve
some particular task and application.
For the most part, these tools are opaque and unalterable
 - the user viewing them as black boxes which usually spit out the
appropriate response when prodded in just the right way.


My talk today outlines an approach around this difficulty of unyeilding RLs,
which employs a representation language language,
a term I will, of course, first define.
I will then indicate how such a beast can be used to solve this problem,
using example taken from our starting implementation, RLL.

II.
  Q:	Begin by asking What distinguishes LISP from other languages?
	Why are it in such common <pervasive> use, over Pascal, APL, ...
  A: Several reasons, 
	1. List processing - required for symbolic reasoning
	2. Flexibility and adaptability
	   One can use LISP to hierarchically build up complex system
	<I'll concentrate on this>
  Q: How does LISP acheive this:
	It can treat its processes as data -
	ie LISP knows re: S-Expressions, and that is what the programs are.
	Designers knew to leave in hooks, to the actual interpreter.
		So you can turn DWIMIFY off, or change the way the evaluator works.

  Q: Why not use LISP?
  A: Unfortunately, LISP isn't enough - we need more convenient ways to communicate,
	employing a more usable medium. While LISP knows re: CARs and CONSs,
	we want to talk of shoes, and ships and sealing wax.

  For this we've devised higher-level languages, such as representation languages,
	a tool for conveniently encoding and manipulating body of facts,
	and the correct level - ie corresponding to natural decomposition of world.
     And nothing more -- hence wffs, units, rules, all qualify; with
	their respective interpreters

  Unfortunately, LISP's lesson seemed forgotten.
	These languages appear as black boxes, opague to the user.
		who just throw things in one end, and get the result magically at the other
	They've become impossible to modify, short of delving into their basic
	code!
[	Unfortunately, these have lacked that nice property.
	They were designed for some particular task, and opaque to the user.
	 (who then had to invent various notions of semantics to account
	  for the mystical operations performed...)

II. Introduction to RLL
  What: A Rep'n Lan Lan -- one capable of modifying itself.
  How: Self-encoding (more on that later)
  Pitfalls avoided: Efficiency considerations - solved (see below)

<<META LEVEL>> Two parts to this talk
	First, discuss our particular implementation,
	Then more general RLL's -- issues and answers; well, issues

III. RLs in general
  A. Domain of a system -- what its facts are about
	In RLL's case, about repns themsevles. For comarision
  C. So RLL is high-level facility whose expertise is Representations, itself.
Compare with VLSI language - which can represent components of relevant to chip
	design - eg resistence, gates, stipple patterns, Si, ...
  also knows how to propogate effects - to simulate a system - eg what timing
	delays to expect if this diffusion layer is moved here...

  D. Similarly, RLL contains representational pieces
	and means of defining new pieces (even new types of peices)
	This includes what might be called its interpreter (by which its
	semantics are defined)
  E. It must have an encoded form of each of these entities, in some initial...

IV. Why is this advantageous?
	Like LISP, the user can redefine his environment
	Unlike LISP, he here has high-level tools
  Break now to give a few examples, and come back and define various things.

V. Examples:
  Comment: the fact that this is Frame oriented shouldn't worry you - it could
	be converted into anything.

	Slot
	Inheritance
	Datatype
	Format
	Functions
	...

VI. If its so obvious, why didn't any do it earlier?
  A. Others have - Sandewall, Levesque&Mylopolous, KRL, ... have considered
	this self encoding/bootstrapping
  B. Problem is efficiency 
	- - if you have to run this code, which was used to describe it
  C. Solution - have your cake & eat it too -- keep more than one rep'n,
	and provide a means for translating among them
  D. Side trip into cognitive economy - note father slot. also compiled fns, ...
	[Like not needed source code when compiled version available]

VII. Details: What does the user actually see
	Starts with a particular system, which is mallable.
	This he uses, until he is dissatisfied, then alters.

VIII. Our specification for an RLL
  A. Issues Epistemological, efficiency, ...

Conclusion: Visible, adaptable...
	We hope this will motivate other, now building systems, to
	build them more self-reflexively, as a trick towards adaptability, and
	hence, longevity.

End: I have copies of a hot-off-the-press memo, available to anyone who
	wishes to learn more re: RLLs.
			      Slides to use:
1. Intro - RLL, A Repn Lan Lan [`A' significant]

2. Advantages of LISP - show how they carry over
	Symbol processing
	Self - encoding ++ even its interpreter just S-expressions
	  Why not use it? Not right level...

3. Where am I? - Really two talks:
	1. Description of system we're putting together
	2. Def'ns of rll (lower case) - and issues involved.
		(new paradigm)

4. Def'ns of terms: Language - way of communicating
	Rep'n Language	 - way of talking about, and manipulating, some
		collection of terms
	  (we might here have Person Rep'n Language, or VLSI Repn Language)
		[Must have terms which facilitate manipulating People, of VLSI
		  - ie components of chip (layer, Si, resistance; and
		related things - eg time delays, electronics in general.
		and way of making new chips, or at least of encoding them
	Rep'n Rep'n Language - means for describing and manipulating
		parts of a representation

5. How? 
	By encoding each part, (as a unit) which can be manipulated
	Including: 
	 Slots, Inheritance, Formats, Datatypes, ...

6. Some examples, to conclude part 1

6. General Parts of Rep'n
	Varies with one's def'n of representation language, of course
	Create new entities (unit, rule, wff)
	Assign properties, or fill in parts, of this (slots, if-part, Value≡T)
	Truth maintainence - as values are updated, what ramifications does this have
		[here is body of automatically done things, to facilitate...]
	KB Management - maintain list of things about, file i/o


				 OutTakes
	3 watchmaker story
  A. 3 watch builders (one better than Simon's Horus & Tempus)
  B. Here, mechanical
  C. #1, Asaurus designed to build Seiko watch #257, very fast
	Precisely programmed...
     #2, ?, able to build arbitrary watches (programmable)
	With many precision parts, for watch component manipulation
     #3, ?, is arbitrary metal worker, again programmable
	Wide range of parts, each taking time to fit in, ...

  D. Initially #1 very good - much faster than 2 or 3
     As demand for Seiko#257, he became obsolete - scrapped
	[Tyrant Asaurus Wrecks]
  E. When people started wearing electronic watchs, #2 left high and dry.
	Wasn't able to use new-fangled gismos for this.
  F. Only #3, who could design new gismos himself;
	as well as effector which he could use,
	survived

  G. Moral - In the long run, it is far better to be adaptable,
	than to be able to do a single task well.
	[Other example: Look at two of natures most successful species:
    i. Insects, which can adapt to environment quickly (few generations)
    ii.Man - who can adapt to environment quickly (putting on jacket)